package com.shujia.MR.count;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;


/**
 * 需求： 根据学生成绩表将学生成绩进行统计
 */
public class CountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {

    /**
     * value读取到的是score文件中的一行数据，并且输出的数据为 Key:学生的ID  Value:学生的成绩
     *   在Reduce端中可以将相同学生的ID汇集到一起 然后再对学生成绩进行求和
     *
     * @param key
     * @param value
     * @param context
     * @throws IOException
     * @throws InterruptedException
     */
    @Override
    protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, IntWritable>.Context context) throws IOException, InterruptedException {
        // 1500100001,1000001,98
        String[] line = value.toString().split(",");

        // line为String[] 需要做类型转换
        context.write(new Text(line[0]), new IntWritable(Integer.valueOf(line[2])));

    }
}
